/**
 * 
 */
package br.com.dp.dto.dominio;

import br.com.dp.dto.dominio.generico.DominioEnum;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.Setter;

/**
 * @author emmanuel
 * Enum responsável por fornecer as páginas do sistema.
 */
@AllArgsConstructor
public enum PaginasEnum implements DominioEnum<Long>{
	LAYOUT(1l,"/templates/layout.xhtml?faces-redirect=true","Página de layout do sistema"),
	MENU_ESQUERDA(2l,"/templates/tiles/menuEsquerda.xhtml?faces-redirect=true","Página de menu lateral à esquerda."),
	INDEX_ADM(3l,"/adm/index.xhtml?faces-redirect=true","Página Inicial Administrador"),
	INDEX_PRP(4l,"/prp/index.xhtml?faces-redirect=true","Página Inicial Proprietário"),
	INDEX_FNC(5l,"/fnc/index.xhtml?faces-redirect=true","Página Inicial Funcionário"),
	INDEX_CLT(6l,"/clt/index.xhtml?faces-redirect=true","Página Inicial Cliente"),
	LOGIN(7l,"/login.xhtml?faces-redirect=true","Página de Login");

	/**
	 * Chave: Valor numérico do Enum referente a página.
	 */
	@Getter
	@Setter
	private Long chave;

	/**
	 * Pagina: {@link String} referente à página.
	 */
	@Getter
	@Setter
	private String pagina;
	
	/**
	 * Label: {@link String} referente à uma descrição da página.
	 */
	@Getter
	@Setter
	private String descricao;

	
	/**
	 * @see br.com.dp.dto.dominio.generico.DominioEnum#getEnumByChave(java.lang.Object)
	 */
	@Override
	public PaginasEnum getEnumByChave(Long chave) {
		for (PaginasEnum paginaEnum : values())
			if(paginaEnum.getChave() == chave)
				return paginaEnum;
		return null;
	}
}